JasmineJS একটি টেস্টিং ফ্রেমওয়ার্ক যা টেস্টিং এবং টেস্ট কেস পরিচালনার জন্য একটি সুনির্দিষ্ট ফোল্ডার এবং ফাইল স্ট্রাকচার অনুসরণ করে। সঠিকভাবে টেস্ট পরিচালনা করার জন্য, Jasmine এর স্ট্রাকচারটি সহজ এবং সুসংগঠিত থাকে। এখানে আমরা JasmineJS এর সাধারণ ফোল্ডার এবং ফাইল স্ট্রাকচার সম্পর্কে আলোচনা করব।
JasmineJS প্রোজেক্টের ফোল্ডার স্ট্রাকচার
JasmineJS এর একটি সাধারণ প্রোজেক্ট ফোল্ডার স্ট্রাকচার দেখতে কিছুটা এরকম হতে পারে:
jasmine-project/
│
├── node_modules/ # npm দ্বারা ইনস্টল করা প্যাকেজ
│
├── spec/ # টেস্ট ফাইলের ফোল্ডার
│ ├── sumSpec.js # উদাহরণ টেস্ট ফাইল
│ └── anotherSpec.js # আরও টেস্ট ফাইল
│
├── package.json # প্রোজেক্টের ডিপেনডেন্সি এবং স্ক্রিপ্ট
├── jasmine.json # Jasmine কনফিগারেশন ফাইল
└── node_modules/ # Node.js প্যাকেজ ফোল্ডার
ফোল্ডার এবং ফাইলের বর্ণনা
১. node_modules/
এই ফোল্ডারটি আপনার প্রোজেক্টে ইনস্টল করা সমস্ত npm প্যাকেজ ধারণ করে। এটি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায় যখন আপনি Jasmine বা অন্য কোনো npm প্যাকেজ ইনস্টল করেন। আপনি সাধারণত এখানে কোনো পরিবর্তন করবেন না।
২. spec/
এই ফোল্ডারটি আপনার টেস্ট ফাইলগুলি ধারণ করে। Jasmine এর মধ্যে সমস্ত টেস্ট ফাইল সাধারণত এই ফোল্ডারে রাখা হয়। টেস্ট ফাইলগুলো সাধারণত .js এক্সটেনশন সহ থাকে। উদাহরণস্বরূপ:
sumSpec.js— যেখানে আপনি সাদাসিধে ফাংশন বা কোড পরীক্ষা করতে পারেন।anotherSpec.js— অন্যান্য ফিচার বা কোডের টেস্ট।
এই ফোল্ডারে থাকা টেস্ট ফাইলগুলো describe() এবং it() ব্লক ব্যবহার করে টেস্টের কাঠামো তৈরি করবে। এখানে আপনার কোডের বৈশিষ্ট্য অনুযায়ী টেস্ট কেস থাকে।
৩. package.json
এই ফাইলটি আপনার প্রোজেক্টের নির্ভরশীলতা এবং স্ক্রিপ্ট সংক্রান্ত তথ্য ধারণ করে। উদাহরণস্বরূপ, এখানে Jasmine এর মতো প্যাকেজের ইনস্টলেশনের তথ্য থাকবে। এটি একটি npm প্রোজেক্টের মেনিফেস্ট ফাইল হিসেবে কাজ করে। npm install চালানোর সময় এই ফাইল থেকে সমস্ত নির্ভরশীলতা ইনস্টল হয়।
{
"name": "jasmine-project",
"version": "1.0.0",
"description": "A JasmineJS project",
"main": "index.js",
"scripts": {
"test": "jasmine"
},
"devDependencies": {
"jasmine": "^4.0.0"
}
}
৪. jasmine.json
এটি Jasmine এর কনফিগারেশন ফাইল, যা টেস্ট রানার এবং টেস্ট ফাইলগুলোর কনফিগারেশন সংরক্ষণ করে। আপনি যদি কোনো টেস্ট ফোল্ডারের পাথ পরিবর্তন করতে চান বা Jasmine এর কিছু সেটিংস কাস্টমাইজ করতে চান, তবে এই ফাইলটি ব্যবহার করা হয়।
একটি সাধারণ jasmine.json ফাইলের উদাহরণ:
{
"spec_dir": "spec",
"spec_files": [
"sumSpec.js",
"anotherSpec.js"
],
"helpers": []
}
এখানে:
"spec_dir": টেস্ট ফাইলগুলো যে ডিরেক্টরিতে রয়েছে, তার পাথ।"spec_files": আপনার সমস্ত টেস্ট ফাইলের নাম।"helpers": যদি কোনো অতিরিক্ত সহায়ক স্ক্রিপ্ট থাকে, তবে সেগুলো এখানে উল্লেখ করা হয়।
টেস্ট ফাইলের স্ট্রাকচার
JasmineJS এ টেস্ট ফাইল সাধারণত নিচের মতো স্ট্রাকচার থাকে:
// spec/sumSpec.js
describe("sum function", function() {
it("should add two numbers correctly", function() {
const sum = 2 + 3;
expect(sum).toBe(5);
});
it("should return a negative number if the sum is negative", function() {
const sum = -2 + -3;
expect(sum).toBe(-5);
});
});
এখানে:
describe()ব্লক: টেস্ট করা ফিচার বা ফাংশনের নামের বর্ণনা দেয়।it()ব্লক: একটি একক টেস্ট কেসের বর্ণনা দেয়, যা কোনো একটি নির্দিষ্ট আচরণ পরীক্ষা করে।expect()ফাংশন: এটি অ্যাসারশন তৈরি করে এবং কোডের আউটপুটের সাথে মিলিয়ে দেখায়।
সারাংশ
JasmineJS এর ফোল্ডার এবং ফাইল স্ট্রাকচার অত্যন্ত সহজ এবং সুসংগঠিত। এটি আপনাকে টেস্টিং প্রক্রিয়াকে পরিষ্কার এবং সুস্পষ্ট রাখতে সাহায্য করে। ফোল্ডার এবং ফাইলগুলোর মূল উদ্দেশ্য:
spec/: আপনার টেস্ট ফাইলগুলি ধারণ করবে।package.json: আপনার প্রোজেক্টের নির্ভরশীলতা এবং স্ক্রিপ্ট।jasmine.json: Jasmine এর কনফিগারেশন ফাইল।
এভাবে আপনি আপনার JasmineJS টেস্টিং প্রোজেক্টের ফোল্ডার এবং ফাইল স্ট্রাকচার সহজেই তৈরি এবং পরিচালনা করতে পারবেন।
Read more